package com.bjsxt.func;

import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;

@FunctionalInterface
public interface FuncInterface {
    //只能有一个抽象方法
    public void method();

    //不能有第二个抽象方法
    //public void method2();

    //这是非抽象方法，可以有
    default void method3(){

    }
    //这是非抽象方法，可以有
    static void method4(){

    }
    //是抽象方法，但是和Object类中public方法定义相同，可以有
    public boolean equals(Object obj);
    //public String toString();

    public static void main(String[] args) {
        //不是函数式接口
        List list;
        Map map;

        //函数式接口
        Comparator comparator;
        //虽然符合函数式接口的定义，但是不认为是函数式接口
        Comparable comparable;

        Runnable runnable;
        Callable callable;
    }
}
